<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // // es6之前
        // // 映射专题(对应关系)
        // // 3种
        // // 1: 利用对象的key>>value
        // const mapping1 = {
        //     a: 1,
        //     b: 2,
        //     c: 3,
        // };
        // // 2. 利用二维数组
        // const mapping2 = [
        //     ['a', 1],
        //     ['b', 2],
        //     ['c', 3],
        //     [[], 4],
        // ];
        // // 3. 利用switch
        // function mapping3 (letter) {
        //     switch (letter) {
        //         case 'a':
        //             return 1;
        //         case 'b':
        //             return 2;
        //         case 'c':
        //             return 3;
        //         case []:
        //             return 4;

        //         default:
        //             return;
        //     }
        // }

        // console.time('对象');
        // for (let i = 0; i < 100000000; i++) {
        //     mapping1['a'];
        // }
        // console.timeEnd('对象');

        // console.time('数组');
        // for (let i = 0; i < 100000000; i++) {
        //     for (const item of mapping2) { // item: ['a', 1]
        //         if (item[0] === 'a') {
        //             item[1];
        //         }
        //     }
        // }
        // console.timeEnd('数组');

        // console.time('函数');
        // for (let i = 0; i < 100000000; i++) {
        //     mapping3('a');
        // }
        // console.timeEnd('函数');


        // es6   hash表
        const mapping = new Map([
            ['a', 1],
            ['b', 2],
            [true, false],
            [false, false],
        ]);
        // 增
        // mapping.set('a', 1);
        // mapping.set('b', 2);
        // mapping.set(true, false);
        // mapping.set(false, false);
        // const arr = [];
        // mapping.set(arr, 4);
        // mapping.set(new Map(), function () {});
        // // 删
        // mapping.delete('a');
        // 改
        mapping.set('a', 2);
        // 查
        // console.log(mapping.get(true));
        // console.log(mapping.get(false));
        // console.log(mapping.get(arr));

        console.log(mapping.constructor);

    </script>
</body>
</html>